package testando.jpa;

import java.io.Serializable;
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;

import moduloRemoto.bo.interfaces.ProjetoRemote;
import moduloRemoto.pojo.Projeto;

public class Teste implements Serializable
{
	private static final long serialVersionUID = 1L;

	public Teste()
	{
		
	}
	
	public void teste1()
	{
		try
		{
			Hashtable<String, String> env = new Hashtable<String, String>();
			
			env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
			env.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099/");
			env.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");

			InitialContext ctx = new InitialContext(env);
			
			ProjetoRemote bo = (ProjetoRemote) ctx.lookup("ejb/projeto");

			Projeto teste = new Projeto();
			teste.setTituloPro("Projeto Legal");
			
			teste = bo.persistir(teste);
			
			/*
			Projeto objProjeto1 = new Projeto();
			Projeto objProjeto2 = new Projeto();
			
			objProjeto1.setTituloPro("Projeto 1");
			objProjeto2.setTituloPro("Projeto 1");
			
			objProjeto1 = serverClass.insert(objProjeto1);
			objProjeto2 = serverClass.insert(objProjeto2);
			
			
			
			Tarefa objTarefa1 = new Tarefa();
			objTarefa1.setTituloTar("Tarefa Num 1");
			objTarefa1.setProjetoTar(objProjeto1);
			
			Tarefa objTarefa2 = new Tarefa();
			objTarefa2.setTituloTar("Tarefa Num 2");
			objTarefa2.setProjetoTar(objProjeto1);
			
			Tarefa objTarefa3 = new Tarefa();
			objTarefa3.setTituloTar("Tarefa Num 3");
			objTarefa3.setProjetoTar(objProjeto2);
			
			Tarefa objTarefa4 = new Tarefa();
			objTarefa4.setTituloTar("Tarefa Num 4");
			objTarefa4.setProjetoTar(objProjeto2);
			
			objTarefa1 = serverClass.insert(objTarefa1);
			objTarefa2 = serverClass.insert(objTarefa2);
			objTarefa3 = serverClass.insert(objTarefa3);
			objTarefa4 = serverClass.insert(objTarefa4);
			
			
			Colaborador objColaborador1 = new Colaborador();
			objColaborador1.setNomeCol("Eduardo");
			
			Colaborador objColaborador2 = new Colaborador();
			objColaborador2.setNomeCol("Alex");
			
			Colaborador objColaborador3 = new Colaborador();
			objColaborador3.setNomeCol("Edson");
			
			objColaborador1 = serverClass.insert(objColaborador1);
			objColaborador2 = serverClass.insert(objColaborador2);
			objColaborador3 = serverClass.insert(objColaborador3);
			
			
			// Associativa
			
			Atividade objAtividade1 = new Atividade(objTarefa1, objColaborador1);
			Atividade objAtividade2 = new Atividade(objTarefa2, objColaborador1);
			Atividade objAtividade3 = new Atividade(objTarefa1, objColaborador2);
			
			objAtividade1.setTituloAti("Atividade 1");
			objAtividade2.setTituloAti("Atividade 2");
			objAtividade3.setTituloAti("Atividade 3");
			
			objAtividade1 = serverClass.insert(objAtividade1);
			objAtividade2 = serverClass.insert(objAtividade2);
			objAtividade3 = serverClass.insert(objAtividade3);
			
			
			Projeto objTeste = serverClass.find(Projeto.class, objProjeto1.getIdPro());

			for (Tarefa tarefasProjeto : objTeste.getListaTarefas())
			{
				System.out.println(tarefasProjeto.getTituloTar() + " - Id: " + tarefasProjeto.getIdTar());

				for (Atividade atividadeTarefa : tarefasProjeto.getListaAtividades())
					System.out.println("  - " + atividadeTarefa.getTituloAti());
			}
			*/
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
	
	
	public void teste2()
	{
		/*
		try
		{
			
			Hashtable<String, String> env = new Hashtable<String, String>();
			
			env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
			env.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099/");
			env.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");

			InitialContext ctx = new InitialContext(env);
			
			ServerRemote serverClass = (ServerRemote)ctx.lookup("ejb/server/remote");
			
			
			// Adicionando Projetos a um Colaborador e Listando
			Projeto objProjeto1 = new Projeto();
			objProjeto1.setTituloPro("Projeto 1");
			
			Projeto objProjeto2 = new Projeto();
			objProjeto2.setTituloPro("Projeto 2");
			
			objProjeto1 = serverClass.insert(objProjeto1);
			objProjeto2 = serverClass.insert(objProjeto2);
			
			List<Projeto> listaProjetos1 = new ArrayList<Projeto>();
			listaProjetos1.add(objProjeto1);
			listaProjetos1.add(objProjeto2);
			
			
			Colaborador objColaborador1 = new Colaborador();
			objColaborador1.setNomeCol("Eduardo");
			objColaborador1.setListaProjetos(listaProjetos1);
			
			objColaborador1 = serverClass.insert(objColaborador1);
			
			for (Projeto projeto : objColaborador1.getListaProjetos())
			{
				System.out.println(projeto.getTituloPro());
			}
			
			
			
			// Adicionando Colaboradores a um Projeto e Listando
			Colaborador objColaborador2 = new Colaborador();
			objColaborador2.setNomeCol("Alex");
			
			objColaborador2 = serverClass.insert(objColaborador2);
			
			List<Colaborador> listaColaboradores = new ArrayList<Colaborador>();
			listaColaboradores.add(objColaborador1);
			listaColaboradores.add(objColaborador2);
			
			objProjeto2.setColaboradores(listaColaboradores);
			objProjeto2 = serverClass.update(objProjeto2);

			objProjeto2 = serverClass.update(objProjeto2);
			
			for (Colaborador colaborador : objProjeto2.getColaboradores())
			{
				System.out.println(colaborador.getNomeCol());
			}
			
			
			serverClass.remove(objColaborador1);
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
		*/
	}
}